#include<string>
#include<fstream>
#include "bundle.h"
#include<string>
using std::cout;
using std::cin;
using std::endl;

int main(int argc,char* argv[])
{
    //分为四步
    //第一步打开文件,找到待压缩文件.
    //第二步,获取待压缩文件的大小,将文件内容获取进行压缩
    //第三步,将压缩后的数据写入到我们想要压缩的文件当中
    //第四步,关闭文件
    cout<<"argv[1] 是原始⽂件路径名称"<<endl;
    cout<<"argv[2] 是压缩包的名称"<<endl;
    if(argc < 3) return -1;
    std::string ifilename = argv[1];
    std::string ofilename = argv[2];
    std::ifstream ifs;
    ifs.open(ifilename,std::ios::binary);//以二进制的方式进行读写
    //第二步,找文件大小
    ifs.seekg(0,std::ios::end);
    size_t fsize=ifs.tellg();
    ifs.seekg(0,std::ios::beg);//第一个参数表示偏移量
    std::string body;
    body.resize(fsize);
    ifs.read(&body[0],fsize);
    std::string packed=bundle::pack(bundle::LZIP,body);
    std::ofstream ofs;
    ofs.open(ofilename,std::ios::binary);
    ofs.write(&packed[0],packed.size());
    ifs.close();
    ofs.close();
    return 0;
}
